Computing systems have revolutionized the way people communicate, do business, and play. The driving force behind computing technology is the microprocessors, which are responsive to instructions (or software) that conforms to an instruction set. Modern microprocessors have a concept of an address space that corresponds to locations addressable by the microprocessor, and which may include memory that is within the microprocessor itself.
Microprocessors may communicate with other microprocessors and/or devices using a communication bus, such as a serial communication bus. One example of a serial communication bus is a Peripheral Component Interconnect (PCI) Express (sometimes called “PCIe”) bus. The PCIe bus permits memory to be shared between devices. For instance, one connected device (a “first” device) may use memory within another connected device (a “second” device) so that some of the memory of the second device is within the address space of the first device. In other words, the first device treats the designated memory within the second device as its own, performing read and write operations over the PCIe bus itself using addresses that are within the address range(s) recognized as valid by the first device.
While some microprocessors may be general purpose, others might be specialized for one or more particular tasks. For instance, some microprocessors are designed to efficiently perform video encoding, others for digital signal processing, others for messaging over networks, and so forth.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.